﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Shop.Core.Domain.Payments;

namespace Shop.Core.Domain.Orders
{
    /*
     * 此状态的枚举值一定要和各个子状态一一对应，
     * 如果不对应，会严重影响到OrderStatusFactory.Calculate的逻辑。
     */
    public enum OrderStatus
    {
        /// <summary>
        /// 等待支付
        /// </summary>
        PaymentPending = 1,
        /// <summary>
        /// 预授权
        /// </summary>
        Authorized = 5,
        /// <summary>
        /// 付款已收到，待确认
        /// </summary>
        PaymentReceipted = 7,
        /// <summary>
        /// 已确认部分支付
        /// </summary>
        PartiallyPaid = 10,
        /// <summary>
        /// 已确认付款完成
        /// </summary>
        PaymentComfired = 15,

        /// <summary>
        /// 等待发货
        /// </summary>
        ShipPending = 201,

        /// <summary>
        /// 备货中
        /// </summary>
        BackOrder = 205,

        /// <summary>
        /// Partially shipped
        /// </summary>
        PartiallyShipped = 220,

        /// <summary>
        /// Shipped
        /// </summary>
        Shipped = 230,

        /// <summary>
        /// 订单完成
        /// </summary>
        Completed = 240,

        /// <summary>
        /// 订单已取消
        /// </summary>
        Cancelled = 245,

        CustomerEditting = 405,
        EmployeeEditting = 410,
    }
}
